package org.linlinjava.litemall.db.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import org.linlinjava.litemall.db.domain.LitemallGoodsProduct;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Data
public class LitemallGoodsDto {
    private Integer id;
    private Integer type; // 1：书，2：文创
    @NotNull(message = "商品编号不能为空")
    private String goodsSn; // 商品编号
    private String author; // 作者名


    @NotNull(message = "商品名称不能为空")
    private String name; // 商品名称

    @NotNull(message = "商品分类不能为空")
    private Integer categoryId; // 商品所属类目ID
    @NotNull(message = "商品品牌不能为空")
    private Integer brandId;
    private String[] gallery; // 商品宣传图片列表，采用JSON数组格式
    private String keywords; // 商品关键字，采用逗号间隔
    private String brief; // 商品简介
    private Boolean isOnSale; // 是否上架
    private Short sortOrder;
    private String picUrl; // 商品页面商品图片
    private String shareUrl; // 商品分享朋友圈图片
    private Boolean isNew; // 是否新品首发，如果设置则可以在新品首发页面展示
    private Boolean isHot; // 是否人气推荐，如果设置则可以在人气推荐页面展示
    private String unit; // 商品单位，例如件、盒
    private BigDecimal spellReduce;
    private BigDecimal memberPrice; // 会员价格
    private BigDecimal retailPrice; // 新书售价
    private String tags; // 标签
    private String detail; // 商品详细介绍，是富文本格式
    private Integer times; // 服务次数
    private String isbn10; // 书码bn10
    private String isbn13; // 书码bn13
    private Integer pagesNumber; // 书的页数
    private String printingDate; // 印刷时间
    private String publicationDate; // 出版时间
    private String publisher; // 出版社
    private String packing; // 装订方式
    private BigDecimal nationalUnifiedPrice; // 全国统一价
    private Integer bookId; // 书的编号
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date addTime; // 创建时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date updateTime; // 更新时间
    private Boolean deleted; // 逻辑删除
    private Integer bookOrderBy; // 排序字段
    private Integer bookDigit; // 书位长度


    @NotNull(message = "库存不能为空")
    private LitemallGoodsProduct inventory; // 库存
}
